package MapReduce;

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

/*yarn由一台resourceManager和n台dataManager组成，resourceManager管理着n台dataManager，

resourceManager原则上应该和namenode分开，单独在一个节点上，现在是在做实验，为了演示方便，

才放在一起的，而dataManager可以和datanode放在一起，这样dataManager和数据离的近一点，

当然也可以不放在一起。*/


/*
 * 1.input阶段  输入一个文档比如  hello java
 * 						       hello c
 * 2.Split拆分阶段        文档拆成行  key是文档的第几个字节   value 那一行的内容        比如 1-hello java
 * 3.map映射阶段      将输入key value 改成自己想要的  key value   比如          hello-1
 * 																	  java-1
 * 4.shuffle派发      将map传过来key相同的派发到同一台服务器上  比如 hello-1
 * 															   hello-1
 *                                                             hello-1
 *                 	并输出  key 为hello   
 * 5.reduce缩减         
*/

public class WordMapper extends Mapper<LongWritable,Text, Text, IntWritable> {
 
	
	
    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context)
            throws IOException, InterruptedException {
        String line = value.toString();
        String[] words = line.split(" ");
        for(String word : words) {
            context.write(new Text(word), new IntWritable(1));
        }
    }
     
}
